<?php

class cGestionDroit extends BaseController{

		public function index(){
			
			$this->loadView("vMenu");
			$this->loadView("vGestionDroit");
			
			echo JsUtils::postFormAndBindTo("#deconnexion", "click", "cAccueil/deconnexion", "menu","#menu");
			//Appel la fonction showRight
			echo JsUtils::postAndBindTo(".trier", "click", "cGestionDroit/showRight", "{par:$(this).val()}", "#shao");
				
		}
		
		public function addRight(){
			
			$groupes = $_POST['idGroupe'];
			$modules = $_POST['idModule'];
			
			foreach ($groupes as $g){
				foreach ($modules as $m){
			
					$droit = new Droit($g,$m);
					
					$ret = DAO::insert($droit);
					
				}
			}
		
				$this->showRight();
		}
		
		public function showRight(){
			
			$allGroupe = DAO::getAll("Groupe");
			
			//si on a demandé un trie, on affiche suivant le choix
			if(!empty($_POST['par'])){
				Gui::currentLaw($allGroupe, $_POST['par']);
			}else{
				//sinon affichage par defaut
				Gui::currentLaw($allGroupe);
			}
			//si on clique sur l'image de supprimer on appel la fonction de suppression
			echo JsUtils::postAndBindTo(".imgDelRight", "click", "cGestionDroit/delRight", "{idGroupe:$(this).attr('name'),trie:$(this).attr('value')}", "#shao");
				
			
		}
		
		public function delRight(){
					
			$allGroupe = DAO::getAll("Groupe");
			$allModule = DAO::getAll("Module");
			$selectGroupe = $_POST['trie'];
			
			//on créer un tableau $tab
			//le + désigne le séparateur dans la variable idGroupe
			//chaque data séparée par le + var créer une nouvelle cellule du tableau
			$tab=explode("+", $_POST['idGroupe']);
			//si la methode de trie est par module
			if($selectGroupe == "modules"){
				
				//on boucle sur groupe
				foreach ($allGroupe as $groupe){
					//Pour chaque groupe on verifie s'il correspond à la variable groupe du tableau
					if ($groupe->getLibelle() == $tab[0]) {
						//on obtient l'id de groupe
						$idGroupe = $groupe->getId();
						
						//ensuite meme chose pour module
						foreach ($allModule as $module){
								
							if ($module->getLibelle() == $tab[1]) {
								$idModule = $module->getId();
								//instanciation de droit
								$droit = new Droit($setIdGroupe = $groupe->getId(),$setIdModule = $module->getId());
								//on peut maintenant suprimer droit	
								$e = DAO::delete($droit);
																
								$this->showRight();
							}
						}
					}
				}
			
			}else{
				foreach ($allGroupe as $groupe){
						//sinon on test en inversant les variables du tableau
					if ($groupe->getLibelle() == $tab[1]) {
						$idGroupe = $groupe->getId();
				
						foreach ($allModule as $module){
				
							if ($module->getLibelle() == $tab[0]) {
								$idModule = $module->getId();
				
								$droit = new Droit($setIdGroupe = $groupe->getId(),$setIdModule = $module->getId());
											
								$e = DAO::delete($droit);
															
								$this->showRight();
							}
						}
					}
				}
			}
			
			
		}
}